\hypertarget{classCAmplitudeScrambling}{
\section{\-C\-Amplitude\-Scrambling \-Class \-Reference}
\label{classCAmplitudeScrambling}\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}}
}


{\ttfamily \#include $<$amplitude\-\_\-scrambling.\-h$>$}

\-Inheritance diagram for \-C\-Amplitude\-Scrambling\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classCAmplitudeScrambling}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCAmplitudeScrambling_a4f6fa533f8a46d26cef9d9fdfa5725b2}{\-C\-Amplitude\-Scrambling} (\hyperlink{structNAudioFormats_1_1SStreamInfo}{\-N\-Audio\-Formats\-::\-S\-Stream\-Info} io\-Stream\-Info)
\item 
virtual \hyperlink{classCAmplitudeScrambling_a59b306d3754ec7ea521c37054daca9ee}{$\sim$\-C\-Amplitude\-Scrambling} ()
\item 
virtual int \hyperlink{classCAmplitudeScrambling_a6d55b484deb4e09f17326b0359f2f1cf}{encrypt} (double $\ast$p\-Data, unsigned int p\-Count)
\item 
virtual int \hyperlink{classCAmplitudeScrambling_a5ffcd79359d63ca2b1f40fa19ff497ee}{decrypt} (double $\ast$p\-Data, unsigned int p\-Count)
\end{DoxyCompactItemize}
\subsection*{\-Protected \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
virtual int \hyperlink{classCAmplitudeScrambling_aa2113755623a41093e74d8648069c94f}{change\-Settings} ()
\item 
int \hyperlink{classCAmplitudeScrambling_a4104459a4fd88f6740d528940c427c44}{dencrypt} (double $\ast$p\-Data, unsigned int p\-Count, bool encrypt)
\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCAmplitudeScrambling_a9e0ffd48421e22d77d88bff3413f7a92}{s\-Ini\-Section\-Name}
\end{DoxyCompactItemize}


\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCAmplitudeScrambling_a4f6fa533f8a46d26cef9d9fdfa5725b2}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}}
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{\-C\-Amplitude\-Scrambling}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Amplitude\-Scrambling\-::\-C\-Amplitude\-Scrambling (
\begin{DoxyParamCaption}
\item[{{\bf \-N\-Audio\-Formats\-::\-S\-Stream\-Info}}]{io\-Stream\-Info}
\end{DoxyParamCaption}
)}}
\label{classCAmplitudeScrambling_a4f6fa533f8a46d26cef9d9fdfa5725b2}
\hypertarget{classCAmplitudeScrambling_a59b306d3754ec7ea521c37054daca9ee}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!$\sim$\-C\-Amplitude\-Scrambling@{$\sim$\-C\-Amplitude\-Scrambling}}
\index{$\sim$\-C\-Amplitude\-Scrambling@{$\sim$\-C\-Amplitude\-Scrambling}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{$\sim$\-C\-Amplitude\-Scrambling}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Amplitude\-Scrambling\-::$\sim$\-C\-Amplitude\-Scrambling (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCAmplitudeScrambling_a59b306d3754ec7ea521c37054daca9ee}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCAmplitudeScrambling_aa2113755623a41093e74d8648069c94f}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!change\-Settings@{change\-Settings}}
\index{change\-Settings@{change\-Settings}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{change\-Settings}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Amplitude\-Scrambling\-::change\-Settings (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classCAmplitudeScrambling_aa2113755623a41093e74d8648069c94f}
called by the protocol engine upon settings change (e.\-g. change of embedding parameters) calls set\-Properties and init\-Crypto if this method gets overwritten, the subclass should call set\-Properties and init\-Crypto 

\-Reimplemented from \hyperlink{classCCryptoEngine_ae509c020577b0be6b45f63a78304314f}{\-C\-Crypto\-Engine}.

\hypertarget{classCAmplitudeScrambling_a5ffcd79359d63ca2b1f40fa19ff497ee}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!decrypt@{decrypt}}
\index{decrypt@{decrypt}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{decrypt}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Amplitude\-Scrambling\-::decrypt (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Data, }
\item[{unsigned int}]{p\-Count}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCAmplitudeScrambling_a5ffcd79359d63ca2b1f40fa19ff497ee}
abstract method decrypt decrypt p\-Count bytes from data and write them back to data if not enough data is available for decryption, zeros should be written to the data buffer 
\begin{DoxyParams}{\-Parameters}
{\em data} & double array with amplitude values from 0 to 1 \\
\hline
{\em p\-Count} & count of audio samples to work with \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 for success, $>$0 for success and discard of samples for next call, $<$0 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classCCryptoEngine_a3405f0d5fc53cce53f35e2ee03cfb95e}{\-C\-Crypto\-Engine}.

\hypertarget{classCAmplitudeScrambling_a4104459a4fd88f6740d528940c427c44}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!dencrypt@{dencrypt}}
\index{dencrypt@{dencrypt}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{dencrypt}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Amplitude\-Scrambling\-::dencrypt (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Data, }
\item[{unsigned int}]{p\-Count, }
\item[{bool}]{encrypt}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected\mbox{]}}}}
\label{classCAmplitudeScrambling_a4104459a4fd88f6740d528940c427c44}
encrypt or decrypt some bytes \-Encryption and decryption is the same algorithm, just plus or minus. \-One method does it all \hypertarget{classCAmplitudeScrambling_a6d55b484deb4e09f17326b0359f2f1cf}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!encrypt@{encrypt}}
\index{encrypt@{encrypt}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{encrypt}]{\setlength{\rightskip}{0pt plus 5cm}int \-C\-Amplitude\-Scrambling\-::encrypt (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Data, }
\item[{unsigned int}]{p\-Count}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCAmplitudeScrambling_a6d55b484deb4e09f17326b0359f2f1cf}
abstract method encrypt encrypt p\-Count bytes from data and write them back to data if not enough data is available for encryption, zeros should be written to the data buffer 
\begin{DoxyParams}{\-Parameters}
{\em data} & double array with amplitude values from 0 to 1 \\
\hline
{\em p\-Count} & count of audio samples to work with \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 for success, $>$0 for success and discard of samples for next call, $<$0 for an error 
\end{DoxyReturn}


\-Implements \hyperlink{classCCryptoEngine_a19175d4e3c5177453e1b7af2bb956bb8}{\-C\-Crypto\-Engine}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCAmplitudeScrambling_a9e0ffd48421e22d77d88bff3413f7a92}{
\index{\-C\-Amplitude\-Scrambling@{\-C\-Amplitude\-Scrambling}!s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}}
\index{s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}!CAmplitudeScrambling@{\-C\-Amplitude\-Scrambling}}
\subsubsection[{s\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-Amplitude\-Scrambling\-::s\-Ini\-Section\-Name}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCAmplitudeScrambling_a9e0ffd48421e22d77d88bff3413f7a92}


\-Reimplemented from \hyperlink{classCCryptoEngine_a771dc5672c3690791e03d9492f4f2400}{\-C\-Crypto\-Engine}.



\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{amplitude__scrambling_8h}{amplitude\-\_\-scrambling.\-h}\item 
\hyperlink{amplitude__scrambling_8cxx}{amplitude\-\_\-scrambling.\-cxx}\end{DoxyCompactItemize}
